package com.nari.ncps.screen.service.dryport;

import com.baomidou.mybatisplus.extension.service.IService;
import com.nari.ncps.screen.entity.dryport.DryportBizmgtDay;

import java.math.BigDecimal;
import java.util.List;

/**
 * <p>
 * 路港业务管理日报表 服务类
 * </p>
 *
 * @author system
 * @since 2025-11-06
 */
public interface DryportBizmgtDayService extends IService<DryportBizmgtDay> {

    /**
     * 根据日期编号查询数据
     * @param dateNo 日期编号（格式：yyyyMMdd）
     * @return 数据列表
     */
    List<DryportBizmgtDay> getByDateNo(String dateNo);

    /**
     * 根据日期编号和组织编码查询数据
     * @param dateNo 日期编号
     * @param orgCode 组织编码
     * @return 数据列表
     */
    List<DryportBizmgtDay> getByDateNoAndOrgCode(String dateNo, String orgCode);

    /**
     * 根据日期范围查询数据
     * @param startDate 开始日期（格式：yyyyMMdd）
     * @param endDate 结束日期（格式：yyyyMMdd）
     * @return 数据列表
     */
    List<DryportBizmgtDay> getByDateRange(String startDate, String endDate);

    /**
     * 根据组织编码查询最新数据（指定条数）
     * @param orgCode 组织编码
     * @param limit 数量限制
     * @return 数据列表
     */
    List<DryportBizmgtDay> getLatestByOrgCode(String orgCode, Integer limit);

    /**
     * 获取营业收入
     * @param dateNo 日期编号
     * @param orgCode 组织编码
     * @param salesType 销售类型
     * @return BigDecimal
     */
    BigDecimal getOperatingRevenue(String dateNo, String orgCode, String salesType);

    /**
     * 获取港口煤炭销售量
     * @param dateNo 日期编号
     * @param orgCode 组织编码
     * @param salesType 销售类型
     * @return BigDecimal
     */
    BigDecimal getPortcoalSalesVolume(String dateNo, String orgCode, String salesType);

    /**
     * 获取港口作业量
     * @param dateNo 日期编号
     * @param orgCode 组织编码
     * @param salesType 销售类型
     * @return BigDecimal
     */
    BigDecimal getPortoperationVolume(String dateNo, String orgCode, String salesType);
}

